IF OBJECT_ID ( 'spr_cat_categoria_s', 'P' ) IS NOT NULL 
    DROP PROCEDURE spr_cat_categoria_s
GO

CREATE PROCEDURE [dbo].[spr_cat_categoria_s] 
	@cat_idt_categoria_pai int
AS

BEGIN
	
	with catCte as
	(
		SELECT
			cat_idt_categoria,
			cat_idt_categoria_pai,
			cat_dat_criacao,
			cat_des_categoria,
			cat_flg_ativo
		FROM
			tb_cat_categoria
		WHERE
			cat_idt_categoria_pai = @cat_idt_categoria_pai
			AND cat_flg_ativo = 1
		
		UNION ALL
		
		SELECT
			cat.cat_idt_categoria,
			cat.cat_idt_categoria_pai,
			cat.cat_dat_criacao,
			cat.cat_des_categoria,
			cat.cat_flg_ativo
		FROM
			tb_cat_categoria cat
		INNER JOIN
			catCte cte
		ON
			cte.cat_idt_categoria = cat.cat_idt_categoria_pai
		WHERE 
			cat.cat_flg_ativo = 1
		
	)
	SELECT
		cat_idt_categoria,
		cat_idt_categoria_pai,
		cat_dat_criacao,
		cat_des_categoria,
		cat_flg_ativo
	FROM
		catCte
	ORDER BY
		cat_des_categoria
	
END